A virtual tape controller (VTC) is typically a tape management system (such as a special storage device, group of devices, etc.) and software, firmware, etc., which manages data such that the data appears to be stored entirely on data storage cartridges when the data is actually located in faster to operate devices, such as hard disk drives, flash memory, etc. The faster device, in most cases a hard disk storage device, may be called a tape volume cache (TVC).
As with any storage device, there is a limited storage capacity on each VTC. When the cache is full, attempts to store more data fail. When applied to a virtual tape system (VTS), the host can no longer write data to virtual volumes presented to the VTC. Host write jobs will suddenly desist. There are situations currently where users expecting data to be written to VTS's are extremely upset because their business continuity is affected by the condition preempting the data from being written.
There are currently several implementations of cache management features in VTS's. The process in these products is generally to monitor the cache usage for one or more threshold values (such as a “limited cache” state, and an “out of cache” state), and if the cache reaches a threshold value, the VTC can take reactive precautions. For example, in some systems, when the “limited cache” state is reached (warning state), a library state change message is sent to the host to indicate the condition. Host jobs are allowed to continue writing data to the cache. The system does not attempt to slow down the host write jobs in any manner. As soon as the cache usage reaches the “out of cache” state (critical state), another attention message is sent to the attached host. When the critical state is reached, the system fails current write jobs and blocks future writes to the cache. This affects writing information to the cache, and reading information from the cache by the host is not affected.
The “out of cache” state is closely monitored by the system in this example. This state is persistent until the cache usage falls below a threshold, at which time the VTS notifies the host that the “out of cache” and “limited cache” states have been disabled. Host write jobs then resume normally.
In another example, a virtual tape controller that faces the same challenges in managing a limited sized cache is presented. The VTC could potentially use the same fixed threshold values as the previous example, but there are distinct organizational differences that warrant a different method. Perhaps the biggest difference between the present VTC and the previous example is the range of supported cache sizes. The present VTC supports much larger cache sizes. Host jobs cannot write to the system's cache when the space used is at or above a threshold of the available cache size, leaving more unused space when the cache size is very large. When this same method is applied to the present system, a large amount of unused space is left, which is essentially wasted space, and is a concern for VTS's with large or very large cache sizes, such as on the order of 40-100 TB.
Moreover, another difference between the two systems is the size of a logical volume. The maximum logical volume size in the previous example is about 25 times smaller than the size of a logical volume in the presently described system. The bigger logical volume size means the host may write more data to the cache on a per device basis, reducing the time associated with demounting the existing volume and loading a new one to the drive. Since the present system may have many devices performing writes simultaneously, on the order of up to 256 devices, all 256 jobs may desist at the same time when the “out of cache” threshold is reached. Since the transition from the “limited cache” state to the “out of cache” state may be reached rather quickly when this large amount of data is being written, a sudden failure to all write jobs may be triggered. This leads to another limitation in the use of the current method for cache management, that sudden failure for all write jobs may be realized since there is no control over how many jobs can write or how quickly the information is written (also known as write throttling) to the logical volumes when warning states are reached, e.g., the lack of host write throttling.
Therefore, a cache management scheme or system which can overcome the problems encountered with currently used devices would be very beneficial to producing continuity for writing to VTS's.